<?php


namespace UU\Suite\Kernel\Contracts;


use GuzzleHttp\Client;
use Psr\Http\Message\RequestInterface;
use Psr\SimpleCache\CacheInterface;
use UU\Suite\Kernel\Contracts\ConfigInterface;
use UU\Suite\Kernel\Encryptor;

interface ApplicationInterface
{

    public function getEncryptor(): EncryptorInterface;

    public function getServer(): ServerInterface;

    public function getRequest(): RequestInterface;

    public function getClient(): HttpClientInterface;

    public function getConfig(): ConfigInterface;

    public function getProviderAccessToken(): AccessTokenInterface;

    public function getCache(): CacheInterface;
}